package br.com.gerenteweb.managedBean;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import br.com.gerenteweb.daos.LojaDao;
import br.com.gerenteweb.loja.Loja;

/**
 *
 * @author Felipe-
 */
@SuppressWarnings("serial")
@ManagedBean(name = "lojaBean")
@SessionScoped
public class LojaBean implements Serializable {

	private Loja loja = new Loja();
	private LojaDao lojaDao = new LojaDao();
	private List<Loja> lojas;

	public LojaBean() {

	}

	public void listarLojas() {
		lojas = lojaDao.getLojas();
	}

	public String adicionarLoja() {
		System.out.println(this.loja);
		lojaDao.addLoja(loja);
		this.loja = new Loja();
		return "cadastro-de-lojas";
	}

	public String removerLoja() {
		Map<String, String> params = FacesContext.getCurrentInstance()
				.getExternalContext().getRequestParameterMap();
		String idLoja = params.get("idLoja");
		Loja loja = lojaDao.getPorID(Long.valueOf(idLoja));
		lojaDao.removeLoja(loja);
		return "lista-de-lojas.xhtml";
	}

	public Loja getLoja() {
		return loja;
	}

	public LojaDao getLojaDao() {
		return lojaDao;
	}

	public void setLojaDao(LojaDao lojaDao) {
		this.lojaDao = lojaDao;
	}

	public void setLoja(Loja loja) {
		this.loja = loja;
	}

	public List<Loja> getLojas() {
		listarLojas();
		return lojas;
	}

	public void setLojas(List<Loja> lojas) {
		this.lojas = lojas;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((loja == null) ? 0 : loja.hashCode());
		result = prime * result + ((lojaDao == null) ? 0 : lojaDao.hashCode());
		result = prime * result + ((lojas == null) ? 0 : lojas.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		LojaBean other = (LojaBean) obj;
		if (loja == null) {
			if (other.loja != null)
				return false;
		} else if (!loja.equals(other.loja))
			return false;
		if (lojaDao == null) {
			if (other.lojaDao != null)
				return false;
		} else if (!lojaDao.equals(other.lojaDao))
			return false;
		if (lojas == null) {
			if (other.lojas != null)
				return false;
		} else if (!lojas.equals(other.lojas))
			return false;
		return true;
	}

}